-- *****************************************************************************
-- *                                                    *     _       _        *
-- *  AdaDecoupe                                        *    / \   __| | __ _  *
-- *  http://code.google.com/p/adadecoupe/              *   / _ \ / _` |/ _` | *
-- *  Radim Badsi & Célia Biguzzi - IG3                 *  / ___ \ (_| | (_| | *
-- *  Polytech'Montpellier                              * /_/   \_\__,_|\__,_| *
-- *                                                    *                      *
-- *****************************************************************************
-- *                                                                           *
-- * util.ads  -  Util                                                         *
-- * Sous-programmes auxiliaires.                                              *
-- *                                                                           *
-- *****************************************************************************

with Ada.Text_Io; with Ada.Integer_Text_Io;

package Util is

    type Dimension is private;
    subtype Categorie_Verre is Character range 'A'..'Z';

    function Dim (Largeur, Hauteur : Natural) return Dimension;
    
    function "<" (A,B : Dimension) return Boolean;
	-- Compare deux rectangles.
    -- Retourne True si (HAUTEUR(A) < Hauteur(B) et LARGEUR(A) < LARGEUR(B)),
    -- faux sinon.
    
    function Get_Largeur (D : Dimension) return Natural;
    function Get_Hauteur (D : Dimension) return Natural;
    
    procedure Set_Largeur (D: in out Dimension;L: in Natural);
    procedure Set_Hauteur (D: in out Dimension;H: in Natural);
    
    function Surface (D: Dimension) return Natural;
    
    function ToString (D: Dimension) return String;
    
    function Str_To_Char(S : String) return Character;
    function Char_To_Str(C : Character) return String;
    
	function Natural_To_Str(N : Natural) return String;
	
	function Get_Kbd(Question : String) return String;
	function Get_Kbd(Question : String) return Integer;
	function Get_Kbd(Question : String) return Character;
private 
    type Dimension is
    record
        Largeur, Hauteur : Natural;
    end record;

end Util;